In conventional computing environments implementing a hypervisor to execute a virtual machine on a host computing device, the hypervisor typically provides the virtual machine with access to hardware resources provided by the host computing device. The hypervisor may allocate physical resources from a pool of physical computing devices, which may include heterogeneous processors providing different levels or types of functionality. In some environments, a hypervisor may need to migrate a virtual machine from one physical computing device to a second physical computing device; for example, when the first physical computing device requires maintenance or no longer has the capacity to provide the virtual machine with the allocated hardware resources. In the event that the two physical computing devices provide different functionality—for example, the first physical computing device supports a first communications protocol for communicating with other machines on a network while the second physical computing device supports a second communications protocol—the migration of the virtual machine from the first physical computing device to the second may fail. For example, the virtual machine may require access to resources provided via communication with a third physical computing device according to a first protocol and a migration of the virtual machine to a physical computing device supporting a different communications protocol may result in unanticipated execution errors or undesired termination of the virtual machine.
Conventional solutions to this problem typically involve providing homogeneous functionality in the pool of physical computing devices, for example, by excluding from the pool a physical computing device that provides access to a physical resource or that supports a communication protocol that is not universally supported by each of the physical computing devices in the pool, or by disabling access to the physical resource. However, this approach typically limits an administrator's ability to provide a diverse range of functionality for users. Furthermore, as physical resources age and require replacement, administrators may not be able to find replacement devices that provide identical functionality.